// pinia 推荐将要管理的状态写成模块, 导出 hook函数 在需要操作状态的组件中 导入使用
// pinia 提供了 defineStore 函数 初始化状态模块
import { defineStore } from 'pinia'

// defineStore 函数需要两个参数
// 参数1: string 类型, 状态模块的名字
// 参数2: Object类型, 状态的配置对象

export const yuYue = defineStore('yuyue', {
    // 状态列表的初始化
    state: () => {
        return {
			// 就诊人信息
            patientCart:[],
			// 选择的科室
			chooseDepartment:{},
			time:'33',
			doctor:{}
        }
    },
    // 计算状态  // pinia 中的 getters 声明的方法不接受参数,在方法中通过 this访问状态
    getters: {
        zc() {
            return 2 * this.r * Math.PI
        },
        mj() {
            return this.r ** 2 * Math.PI
        }
    },
    // 更新方法, pinia 没有mutations , 所有(同步和异步) 的状态修改 都由 actions 完成
    actions: {
        // 不接受参数,在方法中通过 this访问状态
        updateCart(payload) {
            this.patientCart = payload
        },
		updateDepartment(payload){
			this.chooseDepartment = payload
		},
		updateTime(payload){
			this.time = payload
		},
		updateDoctor(payload){
			this.doctor = payload
		}
		
    }
})